Android地图SDK

您所在的位置:网站首页 百度地图 上报 Android地图SDK

Android地图SDK

2023-03-20 13:07| 来源: 网络整理| 查看: 265

Android 地图SDK

重要:为进一步采取加强对最终用户个人信息的安全保护措施,从地图SDK v7.5.0版本起,请开发者务必确保调用SDK任何接口前先调用隐私合规接口setAgreePrivacy,否则可能会无法正常使用相关功能。具体可参考开发指南-开发注意事项-隐私合规接口说明。

产品简介

百度地图 Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。

重点功能简介 地图展示与交互 简介 地图展示:普通地图(2D,3D)、卫星图和实时交通图,开放高清4K地图显示。地图交互:可通过接口或手势控制来实现地图的单击、双击、长按、缩放、旋转、改变视角等操作。 功能展示 public class MainActivity extends Activity { private MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); //显示卫星图层 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时必须调用mMapView. onResume () mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时必须调用mMapView. onPause () mMapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时必须调用mMapView.onDestroy() mMapView.onDestroy(); } } http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/BaiduMap.mp4 室内地图 简介 自百度地图SDK V4.0版本起,室内图功能正式上线,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图App同步更新。支持的公众建筑包含购物商场、机场和火车站等交通枢纽、医院等。覆盖全国4000+个大型购物中心。 功能展示 //打开室内图,默认为关闭状态 mBaiduMap.setIndoorEnable(true); mBaiduMap.setOnBaseIndoorMapListener(new BaiduMap.OnBaseIndoorMapListener() { /** * 地图进入室内图模式回调函数 * * @param in 是否进入室内图模式 * @param mapBaseIndoorMapInfo室内图信息 */ @Override public void onBaseIndoorMapMode(boolean in, MapBaseIndoorMapInfo mapBaseIndoorMapInfo) { if (in) { // 进入室内图 // 通过获取回调参数 mapBaseIndoorMapInfo 便可获取室内图信息,包含楼层信息,室内ID等 } else { // 移除室内图 } } }); //实现楼层间地图切换,展示不同楼层的室内图 SwitchFloorError switchFloorError = mBaiduMap.switchBaseIndoorMapFloor(strFloor, floorID); //上面代码中,strFloor表示室内图楼层,格式为F1,B1… strID 表示室内图ID;返回值switchFloorError 用于标识楼层切换错误信息, 具体如下: //切换楼层成功 SWITCH_OK // 切换楼层, 室内ID信息错误 FLOOR_INFO_ERROR, //楼层溢出 FLOOR_OVERLFLOW, //切换楼层室内ID与当前聚焦室内ID不匹配 FOCUSED_ID_ERROR, //切换楼层失败 SWITCH_ERROR http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/indoorMap.mp4 境外地图 简介 百度地图SDK支持境外地图的展示能力,包含全球200多个国家和地区详细道路、POI等数据展示。 功能展示 /** * 初始化地图SDK */ public class DemoApplication extends Application { @Override public void onCreate() { super.onCreate(); //在使用SDK各组件之前初始化context信息,传入ApplicationContext SDKInitializer.initialize(this); //自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型. //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。 SDKInitializer.setCoordType(CoordType.BD09LL); } } /** *创建Activity, 地图生命周期管理 */ public class MainActivity extends Activity { private MapView mMapView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取地图控件引用 mMapView = (MapView) findViewById(R.id.bmapView); //地图状态参数配置(经纬度是国外) MapStatus ms = new MapStatus.Builder().zoom(10).target(new LatLng(51.50556,-0.07556 )).build(); MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); //更新地图状态 mBaiduMap.animateMapStatus(u); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时必须调用mMapView. onResume () mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时必须调用mMapView. onPause () mMapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时必须调用mMapView.onDestroy() mMapView.onDestroy(); } } https://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/overseas_map.mp4 地图覆盖物 简介 百度地图SDK支持多种地图覆盖物,帮助您展示更丰富的地图。地图覆盖物:地图标注(Marker、InfoWindow)、几何图形(点、折线、弧线、多边形、圆、文字等)、POI检索结果覆盖物、线路规划结果覆盖物等。以下是Marker动画示例展示(以缩放动画为例)。 功能展示 //创建marker MarkerOptions ooA = new MarkerOptions().position(llA).icon(bdA); //添加marker mMarkerA = (Marker) (mBaiduMap.addOverlay(ooA)); private Animation getScaleAnimation() { //创建缩放动画 ScaleAnimation mScale = new ScaleAnimation(1f, 2f, 1f); //设置动画执行时间 mScale.setDuration(2000); //动画重复模式 mScale.setRepeatMode(Animation.RepeatMode.RESTART); //动画重复次数 mScale.setRepeatCount(1); //设置缩放动画监听 mScale.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart() { } @Override public void onAnimationEnd() { } @Override public void onAnimationCancel() { } @Override public void onAnimationRepeat() { } }); return mScale; } /** * 开启单边缩放动画 X或Y方向 */ public void startSingleScaleAnimation() { //marker设置动画 mMarkerG.setAnimation(getSingleScaleAnimation()); //开启marker动画 mMarkerG.startAnimation(); } http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/markerAnimation.mp4 POI检索 简介 百度地图SDK支持周边检索、区域检索、城市内检索和POI详情信息检索。 周边检索:以某一点为中心,指定距离为半径,根据输入的关键词进行POI检索。区域检索:在指定矩形区域内、根据关键词进行POI检索。城市内检索:在某一城市内,根据用户输入的关键字进行POI检索。POI详情信息检索:根据POI的UID信息,检索该POI点的详情。 功能展示 /** * 周边poi检索示例 */ public void nearbyPoiSearch() { //创建poi检索实例 PoiSearch poiSearch = PoiSearch.newInstance(); //创建poi监听者 OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener() { @Override public void onGetPoiResult(PoiResult result) { //获取POI检索结果 } ...... }; //设置poi监听者该方法要先于检索方法searchNearby(PoiNearbySearchOption)前调用,否则会在某些场景出现拿不到回调结果的情况 poiSearch.setOnGetPoiSearchResultListener(poiListener); //设置请求参数 PoiNearbySearchOption nearbySearchOption = new PoiNearbySearchOption() .keyword("餐厅")//检索关键字 .location(center)//检索位置 .pageNum(loadIndex)//分页编号,默认是0页 .pageCapacity(20)//设置每页容量,默认10条 .radius(radius);//附近检索半径 //发起请求 poiSearch.searchNearby(nearbySearchOption); //释放检索对象 poiSearch.destroy(); } http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/poiseach.mp4 路线规划 简介 百度地图SDK支持公交、驾车、骑行、步行和跨城公共交通路线规划。公交路线规划:根据起、终点,进行公交路线规划;驾车线路规划:根据起、终点,不同的策略,进行驾车路线规划,支持设置途经点;骑行线路规划:根据起、终点,进行自行车骑行路线规划,支持跨城骑行路线规划;步行线路规划:根据起、终点,进行步行路线规划;跨城公共交通路线规划:根据起、终点,进行跨城路线规划,支持飞机,火车、大巴、公交等多种出行方案。 功能展示 /** * 驾车路线规划代码示例 */ public void drivingRoute() { //创建驾车线路规划检索实例; RoutePlanSearch routePlanSearch = RoutePlanSearch.newInstance(); //创建驾车线路规划检索监听者; OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() { public void onGetDrivingRouteResult(DrivingRouteResult result) { //获取驾车线路规划结果 } ...... }; //设置驾车线路规划检索监听者,该方法要先于检索方法drivingSearch(DrivingRoutePlanOption)前调用,否则会在某些场景出现拿不到回调结果的情况 routePlanSearch.setOnGetRoutePlanResultListener(listener); //准备检索起、终点信息; PlanNode stNode = PlanNode.withCityNameAndPlaceName("北京", "龙泽"); PlanNode enNode = PlanNode.withCityNameAndPlaceName("北京", "西单"); //发起驾车线路规划检索; routePlanSearch.drivingSearch((new DrivingRoutePlanOption()) .from(stNode) .to(enNode)); //释放检索实例; routePlanSearch.destroy(); } http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/routePlan.mp4 步行导航 简介 自v4.4.0起,新增步行导航功能,支持普通步行导航、步行AR导航、偏航纠正等导航功能。 功能展示 //设置导航的起终点信息 LatLng startPt = new LatLng(40.047416,116.312143); LatLng endPt = new LatLng(40.048424, 116.313513); WalkNaviLaunchParam param = new WalkNaviLaunchParam().stPt(startPt).endPt(endPt); // 使用步行导航前,需要初始化引擎初。 WalkNavigateHelper.getInstance().initNaviEngine(this, new IWEngineInitListener() { @Override public void engineInitSuccess() { Log.d(LTAG, "引擎初始化成功"); routePlanWithParam(); } @Override public void engineInitFail() { Log.d(LTAG, "引擎初始化失败"); } }); /** * 引擎初始化成功之后,发起导航算路。算路成功后,在回调函数中设置跳转至诱导页面。 * 开始算路 */ public void routePlanWithParam() { WalkNavigateHelper.getInstance().routePlanWithParams(param, new IWRoutePlanListener() { @Override public void onRoutePlanStart() { Log.d(LTAG, "开始算路"); } @Override public void onRoutePlanSuccess() { Log.d(LTAG, "算路成功,跳转至诱导页面"); Intent intent = new Intent(); intent.setClass(BNaviMainActivity.this, WNaviGuideActivity.class); startActivity(intent); } @Override public void onRoutePlanFail(WalkRoutePlanError error) { Log.d(LTAG, "算路失败"); } }); } //初始化步行导航过程管理类 WalkNavigateHelper mNaviHelper = WalkNavigateHelper.getInstance(); // 在导航页面WNaviGuideActivity.this的onCreate方法中,调用mNaviHelper.onCreate(WNaviGuideActivity.this)创建诱导View。 View view = mNaviHelper.onCreate(WNaviGuideActivity.this); if (view != null) { setContentView(view); } // 开始导航 mNaviHelper.startWalkNavi(WNaviGuideActivity.this); //在步行导航页面对应的acticity的生命周期方法中分别调用WalkNavigateHelper类中的对应生命周期方法。 @Override protected void onResume() { super.onResume(); mNaviHelper.resume(); } @Override protected void onPause() { super.onPause(); mNaviHelper.pause(); } @Override protected void onDestroy() { super.onDestroy(); mNaviHelper.quit(); } //导航状态信息,主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等 mNaviHelper.setRouteGuidanceListener(this, new IWRouteGuidanceListener() { @Override public void onRouteGuideIconUpdate(Drawable icon) { //诱导图标更新 } @Override public void onRouteGuideKind(RouteGuideKind routeGuideKind) { //诱导枚举信息 } @Override public void onRoadGuideTextUpdate(CharSequence charSequence, CharSequence charSequence1) { //诱导信息 } @Override public void onRemainDistanceUpdate(CharSequence charSequence) { // 总的剩余距离 } @Override public void onRemainTimeUpdate(CharSequence charSequence) { //总的剩余时间 } @Override public void onGpsStatusChange(CharSequence charSequence, Drawable drawable) { //GPS状态发生变化,来自诱导引擎的消息 } @Override public void onRouteFarAway(CharSequence charSequence, Drawable drawable) { //偏航信息 } @Override public void onRoutePlanYawing(CharSequence charSequence, Drawable drawable) { //偏航规划中的信息 } @Override public void onReRouteComplete() { //重新算路成功 } @Override public void onArriveDest() { //到达目的地 } @Override public void onVibrate() { //震动 } }); } //设置诱导信息回调监听,此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务SDK。 //获取语音播报文本方法(注:该接口需要在startWalkNavi方法之前调用,否则不会有回调): mNaviHelper.setTTsPlayer(new IBTTSPlayer() { /** * 诱导文本回调 * @param s 诱导文本 * @param b 是否抢先播报 * @return */ @Override public int playTTSText(String s, boolean b) { return 0; } }); http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/WalkingNavi2.mp4 骑行导航 简介

自v4.2.0起,新增普通骑行导航功能,支持骑行导航、偏航纠正等全部功能。 自v4.4.0起,新增电动车骑行导航,同时支持普通自行车骑行导航(简称:普通骑行导航)和电动车骑行导航,默认为普通骑行导航,旧版用户不受影响。

功能展示 //通过设置BikeNaviLaunchParam对象中的vehicle的值区分:vehicle :0:普通骑行导航 ; 1:电动车骑行导航,不设置vehicle的值时,默认为0 普通骑行导航。 startPt = new LatLng(40.047416,116.312143); endPt = new LatLng(40.048424, 116.313513); param = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt).vehicle(0); // 使用骑行导航前,需要初始化骑行导航引擎。 BikeNavigateHelper.getInstance().initNaviEngine(this, new IBEngineInitListener() { @Override public void engineInitSuccess() { Log.d(LTAG, "引擎初始化成功"); routePlanWithParam(); } @Override public void engineInitFail() { Log.d(LTAG, "引擎初始化失败"); } }); /** * 算路设置起、终点参数,然后在回调函数中设置跳转至诱导页面 * 开始算路 */ public void routePlanWithParam() { param = new BikeNaviLaunchParam().stPt(startPt).endPt(endPt); BikeNavigateHelper.getInstance().routePlanWithParams(param, new IBRoutePlanListener() { @Override public void onRoutePlanStart() { Log.d(LTAG, "开始算路"); } @Override public void onRoutePlanSuccess() { Log.d(LTAG, "算路成功,跳转至诱导页面"); Intent intent = new Intent(); intent.setClass(BNaviMainActivity.this, BNaviGuideActivity.class); startActivity(intent); } @Override public void onRoutePlanFail(BikeRoutePlanError error) { Log.d(LTAG, "算路失败"); } }); } // 获取诱导页面地图展示View //创建诱导View,并接收回调事件。在activity生命周期内调用诱导BikeNavigateHelper对应的生命周期函数。 View view = mNaviHelper.onCreate(BNaviGuideActivity.this); if (view != null) { setContentView(view); } // 开始导航 mNaviHelper.startBikeNavi(BNaviGuideActivity.this); // 设置诱导监听, 主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等。 mNaviHelper.setRouteGuidanceListener(this, new IBRouteGuidanceListener() { @Override public void onRouteGuideIconUpdate(Drawable icon) { } @Override public void onRouteGuideKind(RouteGuideKind routeGuideKind) { } @Override public void onRoadGuideTextUpdate(CharSequence charSequence, CharSequence charSequence1) { } @Override public void onRemainDistanceUpdate(CharSequence charSequence) { } @Override public void onRemainTimeUpdate(CharSequence charSequence) { } @Override public void onGpsStatusChange(CharSequence charSequence, Drawable drawable) { } @Override public void onRouteFarAway(CharSequence charSequence, Drawable drawable) { } @Override public void onRoutePlanYawing(CharSequence charSequence, Drawable drawable) { } @Override public void onReRouteComplete() { } @Override public void onArriveDest() { } @Override public void onVibrate() { } @Override public void onGetRouteDetailInfo(BikeRouteDetailInfo bikeRouteDetailInfo) { } }); //设置诱导信息回调监听,此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务SDK。 //获取语音播报文本方法(注:该接口需要在startWalkNavi方法之前调用,否则不会有回调): mNaviHelper.setTTsPlayer(new IBTTSPlayer() { /** * 诱导文本回调 * @param s 诱导文本 * @param b 是否抢先播报 * @return */ @Override public int playTTSText(String s, boolean b) { return 0; } }); http://mapopen-pub-androidsdk.cdn.bcebos.com/map/video/BikingNavi.mp4 用户须知

在您使用百度Android地图SDK之前,请先阅读并同意百度地图开放平台服务条款中的各项内容,并申请申请密钥(AK)才可使用。您在使用中遇到任何问题,都可以通过反馈平台反馈给我们,之后会有技术支持人员一对一为您处理问题。

免费说明

目前百度地图Android地图SDK境内服务对非商业目的使用的开发者不收取任何费用,开发者可自行下载放心使用。如您以商业目的(包括但不限于对第三方用户收费、项目投标,以及其他直接或间接获取收益或利益)使用本平台服务,则用户须要事先获得本平台"商用授权"许可。 平台商用授权的授权对象为公司主体。授权成功后,您将会收到平台提供的书面版商用授权书(附带百度公司签章)。商用授权可点击这里了解详情。商业目的产品使用前请参考使用须知。

开始使用

1 注册百度账号用户

2 申请成为百度地图开发者

3 获取服务密钥(AK)

4 使用相关服务功能



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3